Add a note about the !CAN_FOCUS quirk in the button size allocation code.
authorMatthias Clasen <mclasen@redhat.com>
Sat, 5 Jun 2004 03:58:50 +0000 (03:58 +0000)
committerMatthias Clasen <matthiasc@src.gnome.org>
Sat, 5 Jun 2004 03:58:50 +0000 (03:58 +0000)
2004-06-04  Matthias Clasen  <mclasen@redhat.com>

* docs/widget_geometry.txt: Add a note about the !CAN_FOCUS
quirk in the button size allocation code.

* gtk/gtkbutton.c (gtk_button_size_allocate): Give the space
requested for drawing the focus indicator to the child in the
!CAN_FOCUS case. This should fix issues which the Gimp has with
the button allocation changes in 2.4.2.

ChangeLog
ChangeLog.pre-2-10
ChangeLog.pre-2-6
ChangeLog.pre-2-8
docs/widget_geometry.txt
gtk/gtkbutton.c

index c53a74a920b0785eaf884be72f923ea8cbb12617..1dcf0753e207b017f9833885985087d87f676f46 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,13 @@
+2004-06-04  Matthias Clasen  <mclasen@redhat.com>
+
+       * docs/widget_geometry.txt: Add a note about the !CAN_FOCUS
+       quirk in the button size allocation code.
+
+       * gtk/gtkbutton.c (gtk_button_size_allocate): Give the space
+       requested for drawing the focus indicator to the child in the
+       !CAN_FOCUS case. This should fix issues which the Gimp has with 
+       the button allocation changes in 2.4.2.
+
 Thu Jun  3 21:17:29 2004  Matthias Clasen  <maclas@gmx.de>
 
        * gtk/gtkentry.c (gtk_entry_completion_timeout): Calculate the
index c53a74a920b0785eaf884be72f923ea8cbb12617..1dcf0753e207b017f9833885985087d87f676f46 100644 (file)
@@ -1,3 +1,13 @@
+2004-06-04  Matthias Clasen  <mclasen@redhat.com>
+
+       * docs/widget_geometry.txt: Add a note about the !CAN_FOCUS
+       quirk in the button size allocation code.
+
+       * gtk/gtkbutton.c (gtk_button_size_allocate): Give the space
+       requested for drawing the focus indicator to the child in the
+       !CAN_FOCUS case. This should fix issues which the Gimp has with 
+       the button allocation changes in 2.4.2.
+
 Thu Jun  3 21:17:29 2004  Matthias Clasen  <maclas@gmx.de>
 
        * gtk/gtkentry.c (gtk_entry_completion_timeout): Calculate the
index c53a74a920b0785eaf884be72f923ea8cbb12617..1dcf0753e207b017f9833885985087d87f676f46 100644 (file)
@@ -1,3 +1,13 @@
+2004-06-04  Matthias Clasen  <mclasen@redhat.com>
+
+       * docs/widget_geometry.txt: Add a note about the !CAN_FOCUS
+       quirk in the button size allocation code.
+
+       * gtk/gtkbutton.c (gtk_button_size_allocate): Give the space
+       requested for drawing the focus indicator to the child in the
+       !CAN_FOCUS case. This should fix issues which the Gimp has with 
+       the button allocation changes in 2.4.2.
+
 Thu Jun  3 21:17:29 2004  Matthias Clasen  <maclas@gmx.de>
 
        * gtk/gtkentry.c (gtk_entry_completion_timeout): Calculate the
index c53a74a920b0785eaf884be72f923ea8cbb12617..1dcf0753e207b017f9833885985087d87f676f46 100644 (file)
@@ -1,3 +1,13 @@
+2004-06-04  Matthias Clasen  <mclasen@redhat.com>
+
+       * docs/widget_geometry.txt: Add a note about the !CAN_FOCUS
+       quirk in the button size allocation code.
+
+       * gtk/gtkbutton.c (gtk_button_size_allocate): Give the space
+       requested for drawing the focus indicator to the child in the
+       !CAN_FOCUS case. This should fix issues which the Gimp has with 
+       the button allocation changes in 2.4.2.
+
 Thu Jun  3 21:17:29 2004  Matthias Clasen  <maclas@gmx.de>
 
        * gtk/gtkentry.c (gtk_entry_completion_timeout): Calculate the
index dbb2de84d71fe6170b8e94d5d0e3e6421586622f..7298ff4b68e190378cc7c34b27eab3e3cfa67cde 100644 (file)
@@ -271,6 +271,11 @@ GtkButton
 
 =====================
 
+NOTE: Due to a bug that is basically unfixable in a sufficiently compatible
+NOTE: way, the button gives the space requested for focus_width and 
+NOTE: focus_padding to the child (in addition to the space requested by
+NOTE: the child), if the button is !CAN_FOCUS.
+
  Style properties
 
    GtkWidget::interior_focus = TRUE
index 02cc19232042a921141ae139cd6d3c6a4c31c52d..72c21178161c4f132e7f2d418e059b9ce0fb81bf 100644 (file)
@@ -966,10 +966,13 @@ gtk_button_size_allocate (GtkWidget     *widget,
          child_allocation.height = MAX (1, child_allocation.height - default_border.top - default_border.bottom);
        }
 
-      child_allocation.x += focus_width + focus_pad;
-      child_allocation.y += focus_width + focus_pad;
-      child_allocation.width =  MAX (1, child_allocation.width - (focus_width + focus_pad) * 2);
-      child_allocation.height = MAX (1, child_allocation.height - (focus_width + focus_pad) * 2);
+      if (GTK_WIDGET_CAN_FOCUS (button))
+       {
+         child_allocation.x += focus_width + focus_pad;
+         child_allocation.y += focus_width + focus_pad;
+         child_allocation.width =  MAX (1, child_allocation.width - (focus_width + focus_pad) * 2);
+         child_allocation.height = MAX (1, child_allocation.height - (focus_width + focus_pad) * 2);
+       }
 
       if (button->depressed)
        {